This disclosure in general relates to computer systems and in particular to the disablement of a function of a multifunction device in a computer system.
Computer systems are information handling electronic systems which can be designed to give independent computing power to one user or a plurality of users. Computer systems may be found in many forms including, for example, mainframes, minicomputers, workstations, servers, personal computers, internet terminals, notebooks, and embedded systems. Computer systems include desk top, floor standing, rack mounted, or portable versions. A typical computer system includes at least one system processor, associated memory and control logic, and peripheral devices that provide input and output for the system. Such peripheral devices may include display monitors, keyboards, mouse-type input devices, floppy and hard disk drives, CD-ROM drives, printers, network capability card circuits, terminal devices, modems, televisions, sound devices, voice recognition devices, electronic pen devices, and mass storage devices such as tape drives, CD-R drives, or DVDs.
Typically, the system processor is operably coupled to a number of peripheral devices via a computer bus or busses. One computer bus standard is a Peripheral Component Interconnect (PCI) Local Bus standard such as, e.g., set forth in the PCI, Rev. 2.2 Specification, Dec. 18, 1998, (copyright) 1998 PCI Special Interest Group. Other types of computer bus standards include the Industry Standard Architecture (ISA), Enhanced ISA (EISA), Micro Channel, Personal Computer Memory Card Industry Association (PCMCIA), Universal Serial Bus (USB), and Small Computer System Interface (SCSI).
Multiple devices may be implemented in a multifunction device that is located on a computer bus. For example, a multifunction device may include computer bus controllers (e.g., SCSI bus controllers), audio controllers, and network interface controllers (e.g., ethernet controllers). One example of a multifunction device is the AIC-7899 sold by ADAPTEC. In some instances, a user may desire to disable a function of a multifunction device. For example, a user may wish to upgrade a device that is implemented in a multifunction device with a device that is mounted on an add-in card.
Devices located on a bus conforming to a PCI bus standard can be disabled by placing the IDSEL input of the device in an inactive state or by placing the PCIRST# signal in an active state using logic circuitry located on the motherboard. An example of a system is set forth in Chan et al., U.S. Pat. No. 5,692,219. However, such a system disables all of the functions of a multifunction device. What is desired is a system for individually disabling a function of a multifunction device.
Providing a system with the ability to individually disable a function of a multifunction device advantageously allows for a function to be disabled without disabling the other functions of the multifunction device.
In one aspect of the disclosure, a computer system includes at least one system processor and a computer bus. The at least one system processor is operably coupled to the computer bus. The computer system also includes a multifunction device operably coupled to the computer bus. The multifunction device includes a plurality of functions. The computer system further includes means for individually disabling a function of the plurality of functions of the multifunction device.
In another aspect, a computer system includes at least one system processor and a computer bus. The at least one system processor is operably coupled to the computer bus. The computer system also includes a multifunction device operably coupled to the computer bus. The multifunction device includes a plurality of functions and register space. The computer system further includes a memory for storing code whose execution writes an indication to a location in the register space to disable a function of the plurality of functions.
In another aspect, disclosure includes a method for disabling a function of a multifunction device operably coupled to a computer bus. The method includes writing to a location in a register space of the multifunction device an indication to disable a function. The method also includes generating a bus command on the computer bus addressed to the function. The method further includes reading the indication in the location in the register space wherein the function is not responsive to the generated command in response to the reading that the function is disabled.
In another aspect, a computer system includes at least one system processor and a computer bus. The at least one system processor is operably coupled to the computer bus. The computer system also includes a multifunction device located on the computer bus. The multifunction device includes a plurality of functions and register space. The multifunction device also includes a first circuit. In response to a bus command addressed to a function of the multifunction device, the first circuit reads a location in the register space of the multifunction device to determine whether the function is to be responsive to the bus command.